home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
-
-
-
- How to Boot Assault
-
- I am ``Assault'', A Sprite file server. To boot after
- a power-up:
-
- >>init
- there will be a pause, then some info printed out
- >>boot -f rz()new
- a number should appear immediately, which is the size of the text being loaded
-
- The above commands will cause Assault to boot off of its
- disk. If Assault doesn't boot, then make sure you typed
- 'init' before 'boot'. If it still doesn't work then try
- booting off of Allspice:
-
- >>init
- there will be a pause, then some info printed out
- >>boot -f tftp()new
- a number should appear immediately, which is the size of the text being loaded
-
- If Assault still won't boot, then go to Allspice and ensure
- that its 'bootp' daemon is running, as well as its 'rarp'
- and 'arp' daemons.
-
- To reboot when running Sprite, use the shutdown com-
- mand:
-
- % sync
- % shutdown -h
-
- The 'sync' command writes out the cache, is isn't required
- unless you are parnoid. Shutdown will sync the disks as the
- last thing before rebooting. After Assault halts, reboot it
- as described above. There is no autoboot for the descsta-
- tions, apparently.
-
- If Assault is so wedged you can't do anything from its
- console, then attempt to sync the cache with:
-
- F1-W
-
- You should get a message about syncing the disks. You can
- abort to the PROM with
-
- F1-A
-
- Or, as a last resort, you can reset it with the reset button
- on the back.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Debugging Tips
-
- If Assault acts up then you might try the following
- things. If you aren't logged in, log in as root. Useful
- commands are:
-
- assault # rpcstat -srvr
-
- Which dumps out the status of all the RPC server processes.
- If a bunch are ``busy'', and they remain busy with the same
- RPC ID and client, then there may be a deadlock. If they
- are all in the ``wait'' state it means that the Rpc_Daemon
- process is not doing rebinding for some reason.
-
- assault # ps -a
-
- This will tell you if any important daemons have died. If
- the ipServer is in the DEBUG state you can kill it and the
- daemons that depend on it with /hosts/assault/fixIPServer.
- This should also restart these daemons, but if it doesn't
- you can use /hosts/mint/restartservers.
-
- % rpcecho -h hostname -n 1000
-
- This program, which is found in
- /sprite/src/benchmarks/rpcecho, and may or may not be
- installed in /sprite/cmds, will tell you if there timeouts
- when using the RPC protocol to talk to another host. If you
- suspect that a host with an Intel ethernet interface is
- flaking out, you can try this command. Lot's of timeouts
- indicate trouble. You can reset a host's network interface
- from its console with either of these keystrokes.
-
- Fl-N
- break-N
- Ll-N
-
- On a regular DecStation keyboard you use the F1 key like a
- shift key. On a regular Sun keyboard you use the L1 key
- like a shift key. On an ascii terminal you use the break
- key like an escape key, hit break, then the key.
-
-
- Kernel Debugging
-
- If Assault is so hung you can't explore with user com-
- mands, then the best you can do is sync the disks with:
-
- F1-W
-
- This should print a message about queuing a call to sync the
- disks, and when it is done it should print a '.' and a new-
- line. If you don't get the newline then Assault is
-
-
-
-
-
-
-
-
-
-
-
-
-
- deadlocked inside the file system cache, sigh. Throw
- Assault into the debugger with:
-
- F1-D
-
- You should get a message about ``Entering the debugger...''.
- (If not, I think you're forced to reboot.)
-
- You have to run the debugger from dill, which is behind
- you. The kernel images should be copied to
- dill:/sprite/src/kernel/nelson, and their version number
- should be evident in their name, i.e. ds3100.1.043. If not,
- you can run strings on the kernel images and grep for ``VER-
- SION''.
-
- dill% strings /sprite/src/kernel/nelson/ds3100 | egrep VERSION
-
- To run the kernel debugger (a variant of dbx)
-
- dill% cd /sprite/src/kernel/nelson
- dill% Kdbx ds3100.version assault
-
- If there is a deadlock you can dump the process table:
-
- (kdbx) set $pdump = 0
-
- You can switch from process to process and to stack back-
- traces by using the 'set $index = pid' command. You only
- need to specify the last two hex digits of the process ID.
- If you only have a decimal ID, then you have to type the
- whole thing. File system deadlocks center around locked
- handles, usually. When you find a process stuck in
- Fsutil_HandleFetch of Fsutil_HandleLock you can try to find
- the culprit by looking at the *hdrPtr these guys are waiting
- on. There is a 'lockProcessID' in the hdrPtr that is really
- the address of a Proc_ControlBlock. You can print this out
- with something like:
-
- (kdbx) print *(Proc_ControlBlock *)(hdrPtr->lockProcessID)
-
- You cannot reboot Assault from within kdbx. You have to
- abort it, or reset it with the reset button on the back of
- the machine, and then reboot it as described above.
-
- Modify date
-
- These notes were last updated by Brent Welch on January
- 28, 1992.
-
-
-
-
-
-
-
-
-
-
-
-